package cn.topevery.garden.entity.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.topevery.garden.entity.serializer.GeometrySerializer;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 设备表 视图
 *
 * @author code-generate
 * @date 2021-08-30
 */
@Data
@ApiModel(value = "GpsDevice 视图", description = "设备表 视图")
public class GpsDeviceVO implements Serializable{
    /**
     * 自增id
     */
    private Integer id;

        /**
     * GPS设备号
     */
    @ApiModelProperty(value = "GPS设备号")
    @Excel(name = "GPS设备号", orderNum = "0")
    private String code;

    /**
     * SIM卡号
     */
    @ApiModelProperty(value = "SIM卡号")
    @Excel(name = "SIM卡号", orderNum = "0")
    private String simCode;

    /**
     * 使用年限(年)
     */
    @ApiModelProperty(value = "使用年限(年)")
    @Excel(name = "使用年限(年)", orderNum = "0")
    private Integer canUseYear;

    /**
     * 厂家名称
     */
    @ApiModelProperty(value = "厂家名称")
    @Excel(name = "厂家名称", orderNum = "0")
    private String manufacturers;

    /**
     * 厂家联系人
     */
    @ApiModelProperty(value = "厂家联系人")
    @Excel(name = "厂家联系人", orderNum = "0")
    private String manufacturersContactPerson;

    /**
     * 厂家联系人		 厂家联系电话
     */
    @ApiModelProperty(value = "厂家联系人		 厂家联系电话")
    @Excel(name = "厂家联系人		 厂家联系电话", orderNum = "0")
    private String manufacturersContactPhone;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Excel(name = "备注", orderNum = "0")
    private String remark;

    /**
     * 排序号
     */
    @ApiModelProperty(value = "排序号")
    @Excel(name = "排序号", orderNum = "0")
    private Short sortId;

    /**
     * 排序号		 接入方式
     */
    @ApiModelProperty(value = "排序号		 接入方式")
    @Excel(name = "排序号		 接入方式", orderNum = "0")
    private Integer joinType;

    /**
     * 设备品牌
     */
    @ApiModelProperty(value = "设备品牌")
    @Excel(name = "设备品牌", orderNum = "0")
    private String brand;

    /**
     * 套餐到期日期
     */
    @ApiModelProperty(value = "套餐到期日期")
    @Excel(name = "套餐到期日期", orderNum = "0")
    private LocalDate dueDate;

    /**
     * 设备类型
     */
    @ApiModelProperty(value = "设备类型(0：人，1：车，2：压缩箱，3：公厕、4：中转站,5：巡查人员，6：垃圾桶)")
    @Excel(name = "设备类型", orderNum = "0", replace = {"人员_0", "车辆_1"})
    private Integer deviceType;

    /** 设备类型名称 */
    @ApiModelProperty(value = "设备类型名称")
    @Excel(name = "设备类型名称", orderNum = "0")
    private String deviceTypeName;

    /**
     * SIM卡开卡日期
     */
    @ApiModelProperty(value = "SIM卡开卡日期")
    @Excel(name = "SIM卡开卡日期", orderNum = "0")
    private LocalDate simBeginDate;

    /**
     * 使用状态
     */
    @ApiModelProperty(value = "使用状态")
    @Excel(name = "使用状态", orderNum = "0")
    private Integer useState;

    /**
     * 管理部门
     */
    @ApiModelProperty(value = "管理部门")
    @Excel(name = "管理部门", orderNum = "0")
    private Integer managerDept;

    /**
     * 
     */
    @ApiModelProperty(value = "")
    @Excel(name = "", orderNum = "0")
    private Integer map;

    /**
     * 创建id
     */
    @ApiModelProperty(value = "创建id")
    @Excel(name = "创建id", orderNum = "0")
    private Integer dbCreateId;

    /**
     * 创建日期
     */
    @ApiModelProperty(value = "创建日期")
    @Excel(name = "创建日期", orderNum = "0")
    private LocalDateTime dbCreateDate;

    /**
     * 修改日期
     */
    @ApiModelProperty(value = "修改日期")
    @Excel(name = "修改日期", orderNum = "0")
    private LocalDateTime dbLastUpdateDate;

    /**
     * 修改id
     */
    @ApiModelProperty(value = "修改id")
    @Excel(name = "修改id", orderNum = "0")
    private Integer dbLastUpdateId;

    @ApiModelProperty(value = "设施Id")
    private Integer objectId;

    @ApiModelProperty(value = "设施名称")
    private String name;

    @ApiModelProperty(value = "经度")
    private Double lng;

    @ApiModelProperty(value = "纬度")
    private Double lat;

    @ApiModelProperty(value = "使用状态")
    private String companyDeviceId ;

    @JSONField(serializeUsing = GeometrySerializer.class)
    @ApiModelProperty(value = "坐标")
    private Geometry geom;
}
